package shiyan2;

/**
 * Created by Lenovo on 2017-05-01.
 */
/*
伪代码
1.将字符串数组转化为整型数组
2.调用递归函数实现求和
    递归函数：
    arr[0]=sum;
    arr[1]=n;//计数用
    当arr[1]==1，return arr[0];
    arr[1]介于args.length与1 arr[0]=它本身+args实际存的数;
注：
测试代码可不写，直接运行体现
被注释掉的语句均为伪-断点测试*/
public class TestArgs2 {
    public static void main(String[] args) {
        int sum = 0;
        // 参考Integer类中的方法把字符串转为整数
        // 补充代码以递归的方式求命令行参数的args中整数数据的和
        int[] arr = new int[args.length+2];
        arr[1] = args.length;//n
        for (int i = 2,n=0;( i < args.length+2)&&(n<args.length); i++,n++) {
            arr[i] = Integer.parseInt(args[n]);
            //           System.out.println("arg[]= " + args[n]);
            //           System.out.println("arr[]= "+arr[i]);
        }
        arr[0] = arr[arr[1]+1];
        //       System.out.println("1 arr[1]="+arr[1]);
        //     System.out.println("1sum= "+arr[0]);
        sum = clSum(arr);

        System.out.println(sum);
    }
    //递归函数
    public static int clSum(int[] arr) {
        try {
            //      System.out.println("length = "+arr.length);
            if(arr[1]==1)
            {
                return arr[0];
            }
            else
            {
                arr[0] = arr[0] + arr[arr[1]];
                arr[1]--;
                return clSum(arr);
            }
        } catch (NumberFormatException e) {
            e.printStackTrace();
        }
        return arr[0];
    }
}